package com.ruoyi.fire.domain;

import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 楼层信息对象 t_floor
 *
 * @author ruoyi
 * @date 2025-11-02
 */
@Data
@ApiModel(value = "TFloor", description = "楼层信息对象")
public class TFloor extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 建筑物ID
     */
    @ApiModelProperty("建筑物ID")
    @JSONField(name = "bg_id")
    @Excel(name = "建筑物ID")
    private String bgId;

    /**
     * 联网楼层ID
     */
    @ApiModelProperty("联网楼层ID")
    @JSONField(name = "floor_id")
    @Excel(name = "联网楼层ID")
    private String floorId;

    /**
     * 楼层名称,最大长度 64
     */
    @ApiModelProperty("楼层名称")
    @JSONField(name = "floor_name")
    @Excel(name = "楼层名称,最大长度 64")
    private String floorName;

    /**
     * 楼层索引,楼层数值
     */
    @ApiModelProperty("楼层索引")
    @JSONField(name = "floor_index")
    @Excel(name = "楼层索引,楼层数值")
    private Long floorIndex;

    /**
     * 楼层面积,单位：m2
     */
    @ApiModelProperty("楼层面积")
    @JSONField(name = "floor_area")
    @Excel(name = "楼层面积,单位：m2")
    private Long floorArea;

    /**
     * 房间数量
     */
    @ApiModelProperty("房间数量")
    @JSONField(name = "floor_room_count")
    @Excel(name = "房间数量")
    private Long floorRoomCount;

    /**
     * 楼层高度,单位：m，精确到小数点后2位
     */
    @ApiModelProperty("楼层高度")
    @JSONField(name = "floor_height")
    @Excel(name = "楼层高度,单位：m，精确到小数点后2位")
    private Long floorHeight;

    /**
     * 是否是避难层, 0-是，1-不是
     */
    @ApiModelProperty("是否是避难层, 0-是，1-不是")
    @JSONField(name = "floor_is_refuge")
    @Excel(name = "是否是避难层, 0-是，1-不是")
    private Long floorIsRefuge;

    /**
     * 自定义数据
     */
    @ApiModelProperty("自定义数据")
    @JSONField(name = "extra_data")
    @Excel(name = "自定义数据")
    private String extraData;

    /**
     * 推送状态 0-未推送 1-推送失败 2-推送成功
     */
    @ApiModelProperty("推送状态 0-未推送 1-推送失败 2-推送成功")
    @Excel(name = "推送状态 0-未推送 1-推送失败 2-推送成功")
    private String pushStatus;

    /**
     * 创建用户ID
     */
    @ApiModelProperty("创建用户ID")
    @Excel(name = "创建用户ID")
    private Long createUserId;

    /**
     * 建筑物信息
     */
    @ApiModelProperty("建筑物信息")
    @TableField(exist = false)
    private TBuilding building;

    /**
     * 删除标识
     */
    private String delFlag;
}
